# 学生管理系统的数据库中存的数据应该有哪些属性:(学号 姓名 性别 年龄 联系电话 住址)

#   学号      姓名      性别      年龄        联系电话            住址
#  20240101  达姆       男       28       1383838888     北京市朝阳区中南海1栋101
#  20240102  徐增辉     女        18       1786665678     刚国人民共和国


# 字典(key:value)
# damu = {
#     "id":"20240101",
#     "name":"达姆",
#     "sex":True,
#     "age":28,
#     "phone":"1383838888",
#     "address":"北京市朝阳区中南海1栋101"
# }

# 类
class Student:
    # 类变量(所有实例共享的)
    i = 0
    # __init__: 构造函数
    # id,name,sex,age,phone,address:实例属性(实例变量)
    def __init__(self,id,name,sex,age,phone,address):
        # self : 对应类创建出来的实例
        self.id = id
        self.name = name
        self.sex = sex
        self.age = age
        self.phone = phone
        self.address = address

    # 除__init__以外的函数 在类中统一叫方法
    # 类底下的 类对应的实例都可以调用
    def updateAge(self,age):
        # self : 对应类创建出来的实例
        self.age = age

# 类的实例化(对类进行调用 本质上是对构造函数的调用)
# 类实例化后会返回一个类对应的实例(对象)
# 实例是一个类似于字典的数据
damu= Student("20240101","达姆",True,28,"1383838888","北京市朝阳区中南海1栋101")

xzh= Student("20240102","徐增辉",False,18,"1786665678","刚国人民共和国")

print(damu.__dict__)

damu.updateAge(88)

print(damu.__dict__)


# 访问与修改规则
# 类变量
#     访问：可通过类名或实例访问。
#     修改：
#         通过类名修改会影响所有实例。
#         通过实例修改会创建同名实例变量（不会改变类变量本身）。
#
# 实例变量
#     访问/修改：只能通过实例对象操作，每个实例独立。
Student.i = 8
print(Student.i)
print(damu.i)
print(xzh.i)

damu.i = 88
print(Student.i)
print(damu.i)
print(xzh.i)

